/// Model 抽象基类
abstract class IModel {}

/// View 抽象基类
abstract class IView {
  /// 显示加载对话框
  void onShowLoading();

  /// 隐藏加载对话框
  void onHideLoading();

  /// 加载成功
  void onSuccess();

  /// 加载失败
  /// @param msg 异常消息
  void onFailed(String msg);

  /// 无网络
  void onNotNetwork();
}

/// Presenter 抽象基类
abstract class IPresenter<T extends IView> {
  /// 加载数据
  void loadData();

  /// 绑定 View
  void attchView(T view);

  /// 销毁 View
  void detachView();
}
